Voltage threshold prediction-based memory management

ABSTRACT

A method includes performing a first read operation involving a set of memory cells using a first voltage, determining a quantity of bits associated with the set of memory cells based on the first read operation, performing a second read operation involving the set of memory cells using a second voltage that is greater than the first voltage when the quantity of bits is above a threshold quantity of bits for the set of memory cells, and performing the second read operation involving the set of memory cells using a third voltage that is less than the first voltage when the quantity of bits is below the threshold quantity of bits for the set of memory cells.

PRIORITY INFORMATION

This application is a continuation of U.S. application Ser. No.17/234,095, filed on Apr. 19, 2021, the contents of which areincorporated herein by reference.

TECHNICAL FIELD

Embodiments of the disclosure relate generally to memory sub-systems,and more specifically, relate to voltage threshold prediction-basedmemory management.

BACKGROUND

A memory sub-system can include one or more memory devices that storedata. The memory devices can be, for example, non-volatile memorydevices and volatile memory devices. In general, a host system canutilize a memory sub-system to store data at the memory devices and toretrieve data from the memory devices.

BRIEF DESCRIPTION OF THE DRAWINGS

The present disclosure will be understood more fully from the detaileddescription given below and from the accompanying drawings of variousembodiments of the disclosure.

FIG. 1 illustrates an example computing system that includes a memorysub-system in accordance with some embodiments of the presentdisclosure.

FIG. 2 is a flow diagram corresponding to a method for voltage thresholdprediction-based memory management in accordance with some embodimentsof the present disclosure.

FIG. 3 is a flow diagram corresponding to a method for voltage thresholdprediction-based memory management in accordance with some embodimentsof the present disclosure.

FIG. 4 illustrates an example of voltage threshold prediction for a setof memory cells in accordance with some embodiments of the presentdisclosure.

FIG. 5 is a block diagram of an example computer system in whichembodiments of the present disclosure may operate.

DETAILED DESCRIPTION

Aspects of the present disclosure are directed to error recoveryoperations in a memory sub-system, in particular to memory sub-systemsthat include a voltage threshold prediction component. A memorysub-system can be a storage system, storage device, a memory module, ora combination of such. An example of a memory sub-system is a storagesystem such as a solid-state drive (SSD). Examples of storage devicesand memory modules are described below in conjunction with FIG. 1 , etalibi. In general, a host system can utilize a memory sub-system thatincludes one or more components, such as memory devices that store data.The host system can provide data to be stored at the memory sub-systemand can request data to be retrieved from the memory sub-system.

A memory device can be a non-volatile memory device. One example ofnon-volatile memory devices is a negative-and (NAND) memory device (alsoknown as flash technology). Other examples of non-volatile memorydevices are described below in conjunction with FIG. 1 . A non-volatilememory device is a package of one or more dice. Each die can consist ofone or more planes. Planes can be groups into logic units (LUN). Forsome types of non-volatile memory devices (e.g., NAND devices), eachplane consists of a set of physical blocks. Each block consists of a setof pages. Each page consists of a set of memory cells (“cells”). A cellis an electronic circuit that stores information. A block hereinafterrefers to a unit of the memory device used to store data and can includea group of memory cells, a word line group, a word line, or individualmemory cells. For some memory devices, blocks (also hereinafter referredto as “memory blocks”) are the smallest area than can be erased. Pagescannot be erased individually, and only whole blocks can be erased.

Each of the memory devices can include one or more arrays of memorycells. Depending on the cell type, a cell can store one or more bits ofbinary information, and has various logic states that correlate to thenumber of bits being stored. The logic states can be represented bybinary values, such as “0” and “1”, or combinations of such values.There are various types of cells, such as single level cells (SLCs),multi-level cells (MLCs), triple level cells (TLCs), and quad-levelcells (QLCs). For example, a SLC can store one bit of information andhas two logic states.

Some NAND memory devices employ a floating-gate architecture in whichmemory accesses are controlled based on a relative voltage changebetween the bit line and the word lines. Other examples of NAND memorydevices can employ a replacement-gate architecture that can include theuse of word line layouts that can allow for charges corresponding todata values to be trapped within memory cells based on properties of thematerials used to construct the word lines.

During operation, a memory sub-system can incur errors that can affectthe quality and/or accuracy of data written to and stored by the memorysub-system. Such errors can include loss or gain of charge associatedwith a storage cell, read disturbances, write disturbances, and/ordegradation of data quality/cell quality as a result of the quantity ofprogram/erase cycles the cell has been subjected to. As the memorysub-system ages, such errors can become increasingly difficult tocorrect and/or mitigate, especially in mobile computing systemarchitectures in which an amount of physical space available forhardware components can be limited. In addition, these errors can becomemore pronounced and/or more frequent over time (e.g., as the memorysub-system ages), which can further impact the quality and/or accuracyof data written to and stored by the memory sub-system. Moreover, sucherrors can become more difficult to mitigate and/or correct at edgecases, such as when the memory sub-system is experiencing a stresscondition, such as various end-of-life (EOL) testing operations wherethe memory sub-system is exposed to frequent and/or rigorous testing toensure that the memory sub-system can operate.

Some approaches attempt to mitigate the types of errors described aboveby performing a series (or at least a portion of a series) of errorhandling processing (e.g., read error handling (REH) processes) tocorrect such errors and/or determine if correction of such errors wassuccessful. Such approaches can perform different operations insuccession as part of performing the series of error handling processesto determine which, if any of such operations can remedy the detectederrors. As an example, some approaches can attempt to read a memory cellwith various retry voltage offsets. For example, some approaches canidentify a particular parameter that includes a threshold voltage for aset of memory cells (e.g., a word line, a portion of a word line, etc.).In this example, the various retry voltage offsets can include assertionof voltages that are greater than the threshold voltage and voltagesthat are less than the threshold voltage (VT) in an oscillating fashion.For example, in a memory access operation, a voltage that is greaterthan VT can be asserted followed by assertion of a voltage that is lessthan VT, then a voltage that is greater than the previous voltage thatwas greater than VT can be asserted followed by assertion of a voltagethat is less than the previous voltage that was less than VT, etc. Inthis way, some approaches seek to utilize various retry voltage offsetsto identify if the threshold voltage for the set of memory cells hasmoved. However, such approaches can be time consuming and computingresource intensive.

For example, in some approaches, each of the various retry voltageoffsets can be attempted to determine if one of the various retryvoltage offsets allow the set of memory cells to be decoded. This can bean intensive process in terms of computing resources since someapproaches use both voltage offsets that are greater than and less thanthe voltage threshold for the set of memory cells are utilized to testthe set of memory cells haphazardly and with no regard to the inherentbehavior of the memory cells. As a result, in such approaches, testingthe various retry voltage offsets can be expensive in terms of both timeand computing resources to perform.

Aspects of the present disclosure address the above and otherdeficiencies by predicting the movement of the threshold voltage (VT)based on a memory access operation (e.g. a read or write operation)involving the set of memory cells. In some embodiments, a quantity ofbits stored by, or written to, the set of memory cells can be determinedwhen utilizing the threshold voltage. As a result, a quantity of bitsthat fall above or below the applied VT can be determined andpredictions can be made based on the behavior of the set of memory cellsover time when the VT is asserted to the same. As will be appreciated,the threshold voltage for the set of memory cells can correspond to aparticular read level for the set of memory cells. As used herein, a“read level” generally refers to a particular voltage applied to one ormore memory cells to perform a memory access involving a physicallocation of a memory device. In this way, an applied read or writevoltage can be used to predict a quantity of bits that exhibit voltagedrift characteristics (e.g., a quantity of bits associated with a wordline that have experienced temporal or other voltage-based degradation,etc.) relative to the threshold voltage. This information can beutilized to determine a threshold quantity of bits that have experiencedan access voltage drift such that a prediction as to whether a thresholdvoltage to be applied to one or more of the set of memory cells hasmoved in a positive (e.g., an access voltage greater than an initial VT)or negative (e.g., an access voltage less that the initial VT)direction.

In some embodiments, a VT can correspond to a particular voltage withina voltage distribution associated with the set of memory cells thatcorresponds to a valley within the VT distribution that, when applied toa particular memory cell or the set of memory cells, returns an accuratedata value stored by the memory cell or set of memory cells. Asdescribed herein, the charge stored by the memory cell or set of memorycells can “drift” (e.g., shift) over time. When a previous Vt haschanged over time, a memory access operation performed using theprevious VT can be associated with a voltage that no longer falls withinthe valley of the VT distribution. In this way, a failure can occur, orinaccurate data can be returned when the previous VT is applied to aparticular memory cell or set of memory cells. For example, a readvoltage for the previous VT that has “drifted” may not be an optimizedread level (e.g., may not be a valley of the VT distribution) for theparticular memory cell or set of memory cells. Accordingly, embodimentsdescribed herein can seek to optimize read voltages for subsequent readoperations such that the subsequent read operations are performed usinga VT that falls within a valley of the voltage distribution after thecharge stored by the memory cells or set of memory cells has experienceda voltage drift.

Aspects of the present disclosure address the above and otherdeficiencies by allowing for a decrease in a quantity of offsets thatcan be tested in performance of memory cell decoding. For example, byperforming the operations described herein, memory sub-systemperformance can be improved in comparison to the approaches describedabove since fewer offsets can be tested to determine a voltage that iscapable of decoding the set of memory cells. In some embodiments, halfof the offsets may be utilized to identify a voltage threshold thatdecodes the set of memory cells. For example, instead of utilizing bothpositive and negative retry voltage offsets to determine if the voltagethreshold for the set of memory cells has moved in a positive ornegative direction, the present approach can limit the offsets to eitherall positive offsets or all negative offsets based on a comparisonbetween the threshold quantity of bits and the determined quantity ofbits successfully (or unsuccessfully) decoded using a particular VT froma read or write operation. In some embodiments, the prediction of themovement of the threshold voltage can be accomplished with one singlelevel read operation (e.g., assertion of a signal corresponding to asingle VT) of the set of memory cells. In this way, offsets that areopposite to the movement of a voltage indicative of an accurate read orwrite of the set of memory cells (or constituent memory cells containedwithin the set of memory cells) may not have to be tested and thereforeperformance of the error recovery operation can be improved.

FIG. 1 illustrates an example computing system 100 that includes amemory sub-system 110 in accordance with some embodiments of the presentdisclosure. The memory sub-system 110 can include media, such as one ormore volatile memory devices (e.g., memory device 140), one or morenon-volatile memory devices (e.g., memory device 130), or a combinationof such.

A memory sub-system 110 can be a storage device, a memory module, or ahybrid of a storage device and memory module. Examples of a storagedevice include a solid-state drive (SSD), a flash drive, a universalserial bus (USB) flash drive, an embedded Multi-Media Controller (eMMC)drive, a Universal Flash Storage (UFS) drive, a secure digital (SD)card, and a hard disk drive (HDD). Examples of memory modules include adual in-line memory module (DIMM), a small outline DIMM (SO-DIMM), andvarious types of non-volatile dual in-line memory modules (NVDIMMs).

The computing system 100 can be a computing device such as a desktopcomputer, laptop computer, server, network server, mobile device, avehicle (e.g., airplane, drone, train, automobile, or other conveyance),Internet of Things (IoT) enabled device, embedded computer (e.g., oneincluded in a vehicle, industrial equipment, or a networked commercialdevice), or such computing device that includes memory and a processingdevice.

The computing system 100 can include a host system 120 that is coupledto one or more memory sub-systems 110. In some embodiments, the hostsystem 120 is coupled to different types of memory sub-system 110. FIG.1 illustrates one example of a host system 120 coupled to one memorysub-system 110. As used herein, “coupled to” or “coupled with” generallyrefers to a connection between components, which can be an indirectcommunicative connection or direct communicative connection (e.g.,without intervening components), whether wired or wireless, includingconnections such as electrical, optical, magnetic, and the like.

The host system 120 can include a processor chipset and a software stackexecuted by the processor chipset. The processor chipset can include oneor more cores, one or more caches, a memory controller (e.g., an SSDcontroller), and a storage protocol controller (e.g., PCIe controller,SATA controller). The host system 120 uses the memory sub-system 110,for example, to write data to the memory sub-system 110 and read datafrom the memory sub-system 110.

The host system 120 can be coupled to the memory sub-system 110 via aphysical host interface. Examples of a physical host interface include,but are not limited to, a serial advanced technology attachment (SATA)interface, a peripheral component interconnect express (PCIe) interface,universal serial bus (USB) interface, Fibre Channel, Serial AttachedSCSI (SAS), Small Computer System Interface (SCSI), a double data rate(DDR) memory bus, a dual in-line memory module (DIMM) interface (e.g.,DIMM socket interface that supports Double Data Rate (DDR)), Open NANDFlash Interface (ONFI), Double Data Rate (DDR), Low Power Double DataRate (LPDDR), or any other interface. The physical host interface can beused to transmit data between the host system 120 and the memorysub-system 110. The host system 120 can further utilize an NVM Express(NVMe) interface to access components (e.g., memory devices 130) whenthe memory sub-system 110 is coupled with the host system 120 by thePCIe interface. The physical host interface can provide an interface forpassing control, address, data, and other signals between the memorysub-system 110 and the host system 120. FIG. 1 illustrates a memorysub-system 110 as an example. In general, the host system 120 can accessmultiple memory sub-systems via a same communication connection,multiple separate communication connections, and/or a combination ofcommunication connections.

The memory devices 130, 140 can include any combination of the differenttypes of non-volatile memory devices and/or volatile memory devices. Thevolatile memory devices (e.g., memory device 140) can be, but are notlimited to, random access memory (RAM), such as dynamic random-accessmemory (DRAM) and synchronous dynamic random-access memory (SDRAM).

Some examples of non-volatile memory devices (e.g., memory device 130)include negative-and (NAND) type flash memory and write-in-place memory,such as three-dimensional cross-point (“3D cross-point”) memory device,which is a cross-point array of non-volatile memory cells. A cross-pointarray of non-volatile memory can perform bit storage based on a changeof bulk resistance, in conjunction with a stackable cross-gridded dataaccess array. Additionally, in contrast to many flash-based memories,cross-point non-volatile memory can perform a write in-place operation,where a non-volatile memory cell can be programmed without thenon-volatile memory cell being previously erased. NAND type flash memoryincludes, for example, two-dimensional NAND (2D NAND) andthree-dimensional NAND (3D NAND).

Each of the memory devices 130, 140 can include one or more arrays ofmemory cells. One type of memory cell, for example, single level cells(SLC) can store one bit per cell. Other types of memory cells, such asmulti-level cells (MLCs), triple level cells (TLCs), quad-level cells(QLCs), and penta-level cells (PLC) can store multiple bits per cell. Insome embodiments, each of the memory devices 130 can include one or morearrays of memory cells such as SLCs, MLCs, TLCs, QLCs, or anycombination of such. In some embodiments, a particular memory device caninclude an SLC portion, and an MLC portion, a TLC portion, a QLCportion, or a PLC portion of memory cells. The memory cells of thememory devices 130 can be grouped as pages that can refer to a logicalunit of the memory device used to store data. With some types of memory(e.g., NAND), pages can be grouped to form blocks.

Although non-volatile memory components such as three-dimensionalcross-point arrays of non-volatile memory cells and NAND type memory(e.g., 2D NAND, 3D NAND) are described, the memory device 130 can bebased on any other type of non-volatile memory or storage device, suchas such as, read-only memory (ROM), phase change memory (PCM),self-selecting memory, other chalcogenide based memories, ferroelectrictransistor random access memory (FeTRAM), ferroelectric random accessmemory (FeRAM), magneto random access memory (MRAM), Spin TransferTorque (STT)-MRAM, conductive bridging RAM (CBRAM), resistive randomaccess memory (RRAM), oxide based RRAM (OxRAM), negative-or (NOR) flashmemory, and electrically erasable programmable read-only memory(EEPROM).

The memory sub-system controller 115 (or controller 115 for simplicity)can communicate with the memory devices 130 to perform operations suchas reading data, writing data, or erasing data at the memory devices 130and other such operations. The memory sub-system controller 115 caninclude hardware such as one or more integrated circuits and/or discretecomponents, a buffer memory, or a combination thereof. The hardware caninclude digital circuitry with dedicated (i.e., hard-coded) logic toperform the operations described herein. The memory sub-systemcontroller 115 can be a microcontroller, special purpose logic circuitry(e.g., a field programmable gate array (FPGA), an application specificintegrated circuit (ASIC), etc.), or other suitable processor.

The memory sub-system controller 115 can be a processor 117 (e.g., aprocessing device) configured to execute instructions stored in a localmemory 119. In the illustrated example, the local memory 119 of thememory sub-system controller 115 includes an embedded memory configuredto store instructions for performing various processes, operations,logic flows, and routines that control operation of the memorysub-system 110, including handling communications between the memorysub-system 110 and the host system 120.

In some embodiments, the local memory 119 can include memory registersstoring memory pointers, fetched data, etc. The local memory 119 canalso include read-only memory (ROM) for storing micro-code. While theexample memory sub-system 110 in FIG. 1 has been illustrated asincluding the memory sub-system controller 115, in another embodiment ofthe present disclosure, a memory sub-system 110 does not include amemory sub-system controller 115, and can instead rely upon externalcontrol (e.g., provided by an external host, or by a processor orcontroller separate from the memory sub-system).

In general, the memory sub-system controller 115 can receive commands oroperations from the host system 120 and can convert the commands oroperations into instructions or appropriate commands to achieve thedesired access to the memory device 130 and/or the memory device 140.The memory sub-system controller 115 can be responsible for otheroperations such as wear leveling operations, garbage collectionoperations, error detection and error-correcting code (ECC) operations,encryption operations, caching operations, and address translationsbetween a logical address (e.g., logical block address (LBA), namespace)and a physical address (e.g., physical block address, physical medialocations, etc.) that are associated with the memory devices 130. Thememory sub-system controller 115 can further include host interfacecircuitry to communicate with the host system 120 via the physical hostinterface. The host interface circuitry can convert the commandsreceived from the host system into command instructions to access thememory device 130 and/or the memory device 140 as well as convertresponses associated with the memory device 130 and/or the memory device140 into information for the host system 120.

The memory sub-system 110 can also include additional circuitry orcomponents that are not illustrated. In some embodiments, the memorysub-system 110 can include a cache or buffer (e.g., DRAM) and addresscircuitry (e.g., a row decoder and a column decoder) that can receive anaddress from the memory sub-system controller 115 and decode the addressto access the memory device 130 and/or the memory device 140.

In some embodiments, the memory device 130 includes local mediacontrollers 135 that operate in conjunction with memory sub-systemcontroller 115 to execute operations on one or more memory cells of thememory devices 130. An external controller (e.g., memory sub-systemcontroller 115) can externally manage the memory device 130 (e.g.,perform media management operations on the memory device 130). In someembodiments, a memory device 130 is a managed memory device, which is araw memory device combined with a local controller (e.g., localcontroller 135) for media management within the same memory devicepackage. An example of a managed memory device is a managed NAND (MNAND)device.

The memory sub-system 110 can include a voltage threshold predictioncomponent 113. Although not shown in FIG. 1 so as to not obfuscate thedrawings, the voltage threshold prediction-based memory managementcomponent 113 can include various circuitry to facilitate determining aquantity of bits associated with the set of memory cells based on thefirst read operation and performing a second read operation based on thedetermined quantity of bits. In some embodiments, the voltage thresholdprediction-based memory management component 113 can include specialpurpose circuitry in the form of an ASIC, FPGA, state machine, and/orother logic circuitry that can allow the voltage thresholdprediction-based memory management component 113 to orchestrate and/orperform operations to selectively perform media management operations(e.g., to determine VT drift) for the memory device 130 and/or thememory device 140 based at least on the quantity of programmed bits inthe set of memory cells.

In some embodiments, the memory sub-system controller 115 includes atleast a portion of the voltage threshold prediction-based memorymanagement component 113. For example, the memory sub-system controller115 can include a processor 117 (processing device) configured toexecute instructions stored in local memory 119 for performing theoperations described herein. In some embodiments, the voltage thresholdprediction-based memory management component 113 is part of the memorysub-system 110, an application, or an operating system.

In a non-limiting example, an apparatus (e.g., the computing system 100)can include a memory sub-system voltage threshold prediction-basedmemory management component 113. The memory sub-system voltage thresholdprediction-based memory management component 113 can be resident on thememory sub-system 110. As used herein, the term “resident on” refers tosomething that is physically located on a particular component. Forexample, the memory sub-system voltage threshold prediction-based memorymanagement component 113 being “resident on” the memory sub-system 110refers to a condition in which the hardware circuitry that comprises thememory sub-system voltage threshold prediction-based memory managementcomponent 113 is physically located on the memory sub-system 110. Theterm “resident on” may be used interchangeably with other terms such as“deployed on” or “located on,” herein.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can perform (or cause performance of) a firstread operation involving a set of memory cells using a first thresholdvoltage that targets a particular memory cell from the set of memorycells. In some example, the set of memory cells comprise a word line ofa NAND memory device. In some embodiments, the first read operation canbe a single level cell (SLC) read operation of the word line of the NANDmemory device. The first read operation involving the set of memorycells can utilize an identified voltage threshold assigned to the set ofmemory cells. For example, the voltage threshold can be a parameter forthe set of memory cells. In some embodiments, the first read operationcan be performed utilizing the first voltage that corresponds to a firstread level for the set of memory cells. For example, the thresholdvoltage can be a voltage that targets a particular physical location ofthe set of memory cells. In this example, the read level can be theparticular physical location of the set of memory cells that is targetedby the threshold voltage.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can determine (or cause a determination to bemade regarding) a quantity of bits of the set of memory cells based onthe first read operation using the first threshold voltage. As usedherein, a “quantity of bits” generally refers to a counted number ofbinary information stored by the set or portion of the set of memorycells. In some embodiments, the quantity of bits associated with the setof memory cells can be a portion of a total number of bits associatedwith the set of memory cells. For example, the first voltage can be avoltage that targets a physical location of a particular memory cellthat corresponds to a particular bit or bits of the memory cell. In thisexample, a first portion of the set of memory cells can be positioned ona first side of the particular memory cell and a second portion of theset of memory cells can be positioned on a second side of the particularmemory cell. In this example, the quantity of bits can be determined byreading the first portion or the second portion of the set of memorycells. As described further herein, a threshold quantity of bitssuccessfully (or unsuccessfully) decoded can be determined based on thefirst voltage and whether the first portion or the second portion of theset of memory cells are read by the first read operation. As usedherein, a “threshold,” such as a threshold quantity of bits, generallyrefers to a designated quantity of programmed bits within a portion ofthe set of memory cells.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can be configured to determine a firstthreshold quantity of bits for the set of memory cells based on thethreshold voltage (VT). In some embodiments, the first thresholdquantity of bits for the set of memory cells can include an upperthreshold quantity of bits for the set of memory cells. For example, thefirst threshold quantity of bits can be a threshold that when exceededby the determined quantity of bits can indicate that the thresholdvoltage for the set of memory cells has moved in a particular directionand thus more bits were read than predicted.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can be configured to determine a secondthreshold quantity of bits for the set of memory cells based on thethreshold voltage. In some embodiments, the second threshold quantity ofbits for the set of memory cells can include a lower threshold quantityof bits for the set of memory cells. For example, the second thresholdquantity of bits can be a threshold that when not exceeded by thedetermined quantity of bits can indicate that the threshold voltage forthe set of memory cells has moved in a particular direction and thusfewer bits were read than predicted.

As described herein, the movement of the threshold voltage can beutilized to select a particular set of offset voltages to be utilizedfor subsequent read operations. In some embodiments, a first set ofoffset voltages that are greater than the first threshold voltage can beselected when the quantity of bits is greater than the first thresholdand a second set of offset voltages that are less than the firstthreshold voltage can be selected when the quantity of bits is less thanthe second threshold. In some embodiments, a third set of offsetvoltages can include a portion of voltages that are greater than thefirst threshold voltage and a portion of voltages that are less than thefirst threshold voltage when the quantity of bits is between the firstthreshold quantity of bits and the second threshold quantity of bits. Insome embodiments, the error recovery operation can revert to a previousset of offset voltages to test when the determined quantity of bits isbetween the first threshold quantity of bits and the second thresholdquantity of bits.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can be configured to determine a secondthreshold voltage to be utilized for a second read operation based on acomparison between the determined quantity of bits and the first andsecond threshold quantity of bits. As described herein, the determinedquantity of bits from the first read operation can be compared to thefirst threshold quantity of bits and the second threshold quantity ofbits. As described herein, the first threshold voltage can be altered tothe second threshold voltage based on the comparison. For example, thesecond threshold voltage can be greater than the first threshold voltagewhen the comparison identifies that the quantity of bits is greater thanthe first threshold quantity of bits. In a different example, the secondthreshold voltage can be less than the first threshold voltage when thecomparison identifies that the quantity of bits is less than the secondthreshold quantity of bits. In this way, the second threshold voltagecan be altered to a voltage that is determined to be closer to athreshold voltage that can be utilized to decode the set of memorycells. In addition, subsequent threshold voltages that are less likelyto be utilized to decode the set of memory cells can be avoided or notused to perform read operations.

The memory sub-system voltage threshold prediction-based memorymanagement component 113 can be configured to perform the second readoperation using the second threshold voltage. In some embodiments, thesecond threshold voltage can be a first offset voltage that is utilizedduring the error recovery operation. As described herein, the subsequentoffset voltages can be selected based on the comparison between thequantity of bits determined using the first read operation. That is,subsequent offset voltages can be selected that are greater than thefirst threshold voltage when the quantity of bits is greater than thefirst threshold quantity of bits and the subsequent offset voltages canbe selected that are less than the first threshold voltage when thequantity of bits is less than the second threshold quantity of bits.This avoids using offset voltages that move away from a particularthreshold voltage relative to the first threshold voltage. In someembodiments, the second threshold voltage is greater than the firstthreshold voltage when the determined quantity of bits is greater thanthe first threshold quantity of bits. In other embodiments, the secondthreshold voltage is less than the first threshold voltage when thedetermined quantity of bits is less than the second threshold quantityof bits.

In some embodiments, the voltage threshold prediction-based memorymanagement component 113 can be configured to perform the second readoperation using the second threshold voltage that is greater than thefirst threshold voltage and perform a third read operation using a thirdthreshold voltage that is less than the first threshold voltage when thedetermined quantity of bits is between the first and second thresholdquantity of bits. In some embodiments, a determined quantity of bitsfrom the first read operation that is between the first threshold andthe second threshold quantity of bits can indicate that the thresholdvalue or voltage to decode the set of memory cells is relatively closeto the voltage of the first threshold voltage. In these embodiments, aset of offsets can be selected that are relatively close to the firstthreshold voltage. For example, a second threshold voltage that isgreater than the first threshold voltage can be selected and a thirdthreshold voltage that is less than the first threshold voltage can beselected.

In some embodiments, the voltage threshold prediction-based memorymanagement component 113 can be configured to determine a plurality ofsubsequent threshold voltages to be greater than the first thresholdvoltage when the determined quantity of bits is greater than the firstthreshold quantity of bits. As described herein, only offset voltagesthat are greater than the first threshold voltage can be utilized whenit is determined that the threshold voltage or voltage to be selected asthe threshold voltage is greater than the first threshold voltage. Inthis way, offset voltages that are likely not going to decode the set ofmemory cells can be avoided, which can save time and computingresources.

In some embodiments, the voltage threshold prediction-based memorymanagement component 113 can be configured to determine a plurality ofsubsequent threshold voltages to be less than the first thresholdvoltage when the determined quantity of bits is less than the secondthreshold quantity of bits. In a similar way, only offset voltages thatare less than the first threshold voltage can be utilized when it isdetermined that the threshold voltage or voltage to be selected as thethreshold voltage is less than the first threshold voltage. In this way,offset voltages that are likely not going to decode the set of memorycells can be avoided, which can save time and computing resources.

In some embodiments, the voltage threshold prediction-based memorymanagement component 113 can be configured to perform only positive readoffsets when the determined quantity of bits is greater than the firstthreshold quantity of bits and perform only negative read offsets whenthe determined quantity of bits is less than the second thresholdquantity of bits. As used herein, a positive read offset can include analtered voltage from a particular voltage in a positive direction (e.g.,increase in voltage from a first voltage). In a similar way, a negativeread offset can include an altered voltage from a particular voltage ina negative direction (e.g., decrease in voltage from a first voltage).

FIG. 2 is a flow diagram corresponding to a method 221 for voltagethreshold prediction-based memory management in accordance with someembodiments of the present disclosure. The method 221 can be performedby processing logic that can include hardware (e.g., processing device,circuitry, dedicated logic, programmable logic, microcode, hardware of adevice, integrated circuit, etc.), software (e.g., instructions run orexecuted on a processing device), or a combination thereof. In someembodiments, the method 221 is performed by the voltage thresholdprediction-based memory management component 113 of FIG. 1 . Althoughshown in a particular sequence or order, unless otherwise specified, theorder of the processes can be modified. Thus, the illustratedembodiments should be understood only as examples, and the illustratedprocesses can be performed in a different order, and some processes canbe performed in parallel. Additionally, one or more processes can beomitted in various embodiments. Thus, not all processes are required inevery embodiment. Other process flows are possible.

As described herein, the set of memory cells can be degraded or alteredafter time and/or use. In some embodiments, a threshold voltage used todecode the set of memory cells can shift to different voltages throughthis degradation. An error recovery operation can be utilized when theset of memory cells were degraded or altered after a period of time. Insome approaches, when the error recovery operation is initiated, aplurality of offset voltages would be tested in a positive direction andnegative direction to determine a voltage that could be used as anupdated threshold voltage. As described herein, performing a pluralityof reads utilizing alternating positive and negative offset voltages canbe time and resource intensive. Thus, the method 221 can utilize asingle read operation to predict whether positive or negative offsetsshould be used. In this way, approximately half of the processes can beutilized to find the updated threshold voltage for the set of memorycells.

At operation 222, a first read operation involving a set of memory cellsusing a first voltage can be performed. In some embodiments, the firstthreshold voltage can be a threshold voltage that is defined for the setof memory cells through parameters or other settings. In someembodiments, the first threshold voltage can target a particularlocation or memory cell of the set of memory cells. In theseembodiments, a predicted quantity of bits can be determined based on theparticular location or memory cell that is targeted by the firstthreshold voltage. For example, the predicted quantity of bits can be aquantity of bits that should be read if the first threshold voltagetargets a correct location or memory cell of the set of memory cells. Inthis example, the correct location or memory cell can be the location ormemory cell defined by the parameters of the set of memory cellsutilizing the first threshold voltage.

At operation 223, a quantity of bits associated with the set of memorycells can be determined based on the first read operation. As describedherein, the first read operation can be utilized to count or determinethe quantity of bits of the set of memory cells. In some embodiments,the set of memory cells can include a first portion of memory cells thatcan be targeted by voltages that are greater than the first thresholdvoltage and a second portion of memory cells that can be targeted byvoltages that are less than the first threshold voltage. In someembodiments, the first read operation can read one of the first portionof memory cells or the second portion of memory cells. In this way, thequantity of bits determined by the first read operation can identifywhether the first threshold voltage should be increased or decreased bycomparing the determined quantity of bits to threshold quantity of bits.

At operation 224, a second read operation involving the set of memorycells can be performed using a second voltage that is greater than thefirst voltage when the quantity of bits is above a threshold quantity ofbits for the set of memory cells. In some embodiments, a determinationis made that the threshold voltage for the set of memory cells has movedto a larger voltage than the first voltage when the quantity of bits isabove the threshold quantity of bits. In other words, a voltage totarget the read level for the set of memory cells may need to be greaterthan the first voltage. In these examples, the first voltage can be avoltage that was originally used to target the read level of the set ofmemory cells. In these examples, the threshold quantity of bits can be adesignated quantity of bits that that exceeds a predicted quantity ofbits for a read level of a read operation of the set of memory cells.That is, the threshold voltage for the set of memory cells can target aparticular read level of the set of memory cells and include acorresponding quantity of bits that can be read at the particular readlevel. A greater quantity of bits than the corresponding quantity ofbits that can be read at the particular read level can indicate thethreshold voltage for the set of memory cells is greater than the firstvoltage. This can indicate that the threshold voltage to be utilized forthe memory cells has shifted to a more positive voltage than the firstvoltage or that the first voltage is targeting a cell that is toward anegative direction of the set of memory cells.

As described herein, previous approaches would determine that thethreshold voltage has shifted and utilize various offset voltages thatare greater than the previous voltage and voltages that are less thanthe previous voltage to determine a voltage that decodes the set ofmemory cells and identify the voltage as an updated threshold voltage oras a threshold voltage for the set of memory cells. These previousapproaches can be more time consuming and consume a greater quantity ofresources compared to predicting an offset direction of the thresholdvoltage based on a quantity of bits read at the particular read level ofthe set of memory cells. That is, in some embodiments, the predicteddirection of the threshold voltage compared to the first voltage canallow the voltage threshold prediction-based memory management component113 to utilize either positive offsets or negative offsets instead ofhaving to utilize both positive and negative offsets.

In some embodiments, the method 221 can include operations to refrainfrom using the second voltage when the quantity of bits is below thethreshold quantity of bits for the set of memory cells. In someembodiments, refraining from using the second voltage when the quantityof bits is below the threshold quantity of bits for the memory cell caninclude not using voltage offsets that are greater than the firstvoltage and/or the second voltage. That is, the method 221 can includeoperations to refrain from testing or utilizing offset voltages that aregreater than the first voltage when the quantity of bits is below thethreshold quantity of bits and since, in this example, the secondvoltage is greater than the first voltage, the method 221 can includeoperations to refrain from using the second voltage.

At operation 226, the second read operation involving the set of memorycells can be performed using a third voltage that is less than the firstvoltage when the quantity of bits is below the threshold quantity ofbits for the set of memory cells. As described herein, the thresholdquantity of bits for the set of memory cells can be based on a readlevel of the first voltage such that a quantity of read bits below thethreshold quantity of bits for the set of memory cells can indicate thatthe threshold voltage has moved to a lower voltage than the firstvoltage. In this way, the method 221 can include operations to performthe second read operation using the third voltage instead of the secondvoltage when the quantity of bits is below the threshold quantity ofbits when using the first voltage.

In some embodiments, the method 221 can include operations to refrainfrom using the third voltage when the quantity of bits is above thethreshold quantity of bits for the set of memory cells. As describedherein, the method 221 can include operations to determine whether thethreshold voltage for the set of memory cells has increased or decreasedbased on the read quantity of bits using the first voltage. When thequantity of bits is above the threshold quantity of bits, the method 221can include operations to refrain from using the third voltage that isless than the first voltage. In addition, the method 221 can includeoperations to refrain from using voltages that are less than the thirdvoltage or voltages that are between the first voltage and the thirdvoltage. In this way, the method 221 can utilize only positive voltageoffsets from the first voltage when the determined threshold voltage isgreater than the first voltage and utilize only negative voltage offsetswhen the determined threshold voltage is less than the first voltage.

In some embodiments, the method 221 can include operations to determinethe threshold quantity of bits for the set of memory cells based on aparticular memory cell or sub-set of memory cells that is targeted bythe first voltage. In these embodiments, the particular memory cell orsub-set of memory cells is a particular physical location within the setof memory cells. As described herein, the threshold quantity of bits canbe based on the particular the first voltage and/or the particularphysical location within the set of memory cells that is targeted by thefirst voltage. For example, the first voltage can represent a first readlevel that targets a first location within the set of memory cells. Inthis example, a first plurality of read levels at a correspondingplurality of locations can exist that can be targeted by correspondingvoltages that are greater than the first voltage. In addition, a secondplurality of read levels at a corresponding plurality of locations canexist that can be targeted by corresponding voltages that are less thanthe first voltage. In this example, the read operation can read thefirst plurality of read levels and a threshold quantity of bits can bebased on a quantity of bits that exist within the first plurality ofread levels. In this way, the threshold quantity of bits can be utilizedto determine if the voltage threshold is at the first voltage, if thevoltage threshold has moved to a read level or targeted voltage withinthe first plurality of read levels or if the voltage threshold has movedto a read level or targeted voltage within the second plurality of readlevels. In this way, offset voltages that target the first plurality ofread levels can be used when the quantity of bits is less than thethreshold quantity of bits and offset voltages that target the secondplurality of read levels can be used when the quantity of bits exceedsthe threshold quantity of bits.

In a non-limiting example, the threshold quantity of bits is ⅝ of thequantity of bits when the particular physical location is positionedbetween a first portion of bits that are approximately ⅜ of the set ofmemory cells and a second portion of bits that are approximately ⅝ ofthe set of memory cells. As described herein, the threshold quantity ofbits can be based on the particular physical location that is targetedby the first voltage. In this specific example, the particular locationcan be positioned between a first portion that includes approximately ⅜of a total quantity of bits for the set of memory cells and the secondportion includes approximately ⅝ of the bits for the set of memorycells. In this way, a read operation can be performed on the secondportion of the set of memory cells to determine the quantity of bits forthe set of memory cells. If the determined quantity of bits is greaterthan ⅝, the threshold voltage has moved toward the first portion and ifthe determined quantity of bits is less than ⅝, the threshold voltagehas moved toward the second portion. Thus, depending on the determineddirection of the threshold voltage, offset voltages can be selected ineither a positive direction or negative direction based on the quantityof bits read during the read operation.

FIG. 3 is a flow diagram corresponding to a method 330 for voltagethreshold prediction-based memory management in accordance with someembodiments of the present disclosure. The method 330 can be performedby processing logic that can include hardware (e.g., processing device,circuitry, dedicated logic, programmable logic, microcode, hardware of adevice, integrated circuit, etc.), software (e.g., instructions run orexecuted on a processing device), or a combination thereof. In someembodiments, the method 330 is performed by the voltage thresholdprediction-based memory management component 113 of FIG. 1 . Althoughshown in a particular sequence or order, unless otherwise specified, theorder of the processes can be modified. Thus, the illustratedembodiments should be understood only as examples, and the illustratedprocesses can be performed in a different order, and some processes canbe performed in parallel. Additionally, one or more processes can beomitted in various embodiments. Thus, not all processes are required inevery embodiment. Other process flows are possible.

As described herein, the set of memory cells can be degraded or alteredafter time and/or use. In some embodiments, a threshold voltage utilizedto decode the set of memory cells can shift to different voltagesthrough this degradation. An error recovery operation can be utilizedwhen the set of memory cells were degraded or altered after a period oftime. In some approaches, when the error recovery operation isinitiated, a plurality of offset voltages would be tested in a positivedirection and negative direction to determine a voltage that could beused as an updated threshold voltage. As described herein, performing aplurality of reads utilizing alternating positive and negative offsetvoltages can be time and resource intensive. Thus, the method 330 canutilize a single read operation to predict whether positive or negativeoffsets should be used. In this way, approximately half of the processescan be utilized to find the updated threshold voltage for the set ofmemory cells.

At operation 331, a first single level cell (SLC) read involving a setof memory cells can be performed using a first threshold voltage totarget a particular memory cell of the set of memory cells. As describedherein, the first SLC read can read a portion of the set of memory cellsin a single direction from the particular memory cell of the set ofmemory cells. In some embodiments, the first SLC read can be utilized todetermine a quantity of bits associated with the portion of the set ofmemory cells.

At operation 332, a quantity of bits of the set of memory cells can bedetermined based on the first SLC read using the first thresholdvoltage. As described herein, the first SLC read can be used todetermine a quantity of bits associated with the set of memory cellsand/or a particular portion of the set of memory cells. As describedherein, the first threshold voltage can be a voltage that was defined byparameters of the set of memory cells. In some embodiments, the definedparameters can also include the particular memory cell from the set ofmemory cells that is targeted when using the first threshold voltage forthe first SLC read.

In some embodiments, the quantity of bits comprise a quantity of bits ata physical location targeted by positive offsets from the particularmemory cell targeted by the first threshold voltage. For example, thequantity of bits includes bits associated with cells from the set ofmemory cells that are targeted by the first threshold voltage and bitsassociated with cells in a particular direction such that positiveoffsets would target bits in the particular direction. As describedherein, the particular memory cell targeted by the first thresholdvoltage can include a first proximate portion of cells and a secondproximate portion of cells. In some embodiments, the quantity of bitscan be associated with one of the first proximate portion or the secondproximate portion.

At operation 333, an upper bit count threshold and a lower bit countthreshold can be determined for the set of memory cells based on thefirst threshold voltage. As described herein, a predicted quantity ofbits to be read using the first threshold voltage can be used todetermine the upper bit count threshold and the lower bit countthreshold. In some embodiments, the upper bit count threshold can be aquantity of bits that can indicate the first threshold voltage is lowerthan a threshold voltage that can decode the set of memory cells and thelower bit count threshold can be a quantity of bits that can indicatethe first threshold voltage is greater than the threshold voltage thatcan decode the set of memory cells. In this way, the upper bit countthreshold and the lower bit count threshold can be utilized to identifya shift in the threshold voltage that can decode the set of memory cellsand/or utilized to identify offset voltages to test for subsequent readoperations.

At operation 334, a set of SLC reads involving the set of memory cellscan be performed using a set of threshold voltages, wherein the set ofthreshold voltages comprise: a set of positive offsets when thedetermined quantity of bits is greater than the upper bit countthreshold, a set of negative offsets when the determined quantity ofbits is less than the lower bit count threshold, or a combination ofpositive and negative offsets when the determined quantity of bits isbetween the upper bit count threshold and the lower bit count threshold,or any combination thereof. As described herein, the set of positiveoffsets can be a set of threshold voltages that are greater than thefirst threshold voltage and the set of negative offsets can be a set ofthreshold voltages that are less than the first threshold voltage.

In some embodiments, the method 330 can include operations to refrainfrom using negative offsets when the determined quantity of bits isgreater than the upper bit count threshold. That is, the set of positiveoffsets will include only offset voltages that are greater than thefirst threshold voltage when the determined quantity of bits is greaterthan the upper bit count threshold. In some embodiments, the method 330can include operations to refrain from using positive offsets when thedetermined quantity of bits is less than the lower bit count threshold.That is, the set of negative offsets will include only offset voltagesthat are less than the first threshold voltage when the determinedquantity of bits is less than the lower bit count threshold.

In some embodiments, the method 330 can include operations to alter theupper bit count threshold and the lower bit count threshold based on thedesignated read level. In these embodiments, the upper bit countthreshold and the lower bit count threshold are increased when thethreshold voltage is lowered and the upper bit count threshold and thelower bit count threshold are decreased when the threshold voltage isincreased. As described herein, the upper bit count threshold and/or thelower bit count threshold can be determined based on a read level of thefirst threshold voltage. For example, the first threshold voltage cantarget a particular physical location or physical memory cell of the setof memory cells. In this example, the upper bit count and/or lower bitcount can be based on a predicted quantity of bits to be read if thefirst threshold voltage is an acceptable threshold voltage for the setof memory cells. As used herein, an acceptable threshold voltage for aset of memory cells generally refers to a threshold voltage that candecode the set of memory cells.

FIG. 4 illustrate an example of voltage threshold prediction for a setof memory cells 440-1, 440-2, 440-3, in accordance with some embodimentsof the present disclosure. In some embodiments, the set of memory cells440-1 can illustrate a set of memory cells 440-1 with a first thresholdvoltage 443 that is capable of decoding the set of memory cells 440-1 atthe particular location (e.g., cell 0). Although a plurality of cellsare illustrated in FIG. 4 , a plurality of additional memory cells canbe added. For example, a plurality of memory cells 441-1 can bepositioned on a negative side of cell 0 and a plurality of memory cells442-2 can be positioned on the positive side of cell 0. As used herein,a negative side of cell 0 can indicate that a lower voltage than thefirst threshold voltage 443 would be used to target cells on thenegative side of cell 0. In a similar way, a positive side of cell 0 canindicate that a higher voltage than the first threshold voltage 443would be used to target cells on the positive side of cell 0.

In some embodiments, a read operation can be performed utilizing thefirst threshold voltage 443. In these embodiments, the read operationcan be a single level read operation to read the positive side of cell0. In this example, the read operation can determine a quantity of bits444 associated with the set of memory cells 440-1. In some embodiments,the quantity of bits 444 can correspond to a correct quantity of bitswhen the first threshold voltage 443 is capable of decoding the set ofmemory cells 440-1. That is, the quantity of bits 444 can include aquantity of bits that are determined when the set of memory cells 440-1are programmed and the first threshold voltage 443 targets the locationof cell 0. In some embodiments, the quantity of bits 444 can be utilizedto determine an upper threshold of bits and/or a lower threshold ofbits. As described herein, the threshold quantity of bits can beutilized to identify a direction that the first threshold voltage 443has shifted.

As described herein, the set of memory cells 440-1 can be degraded oraltered after time and/or use. In some embodiments, the first thresholdvoltage 443 utilized to decode the set of memory cells 440-1 can shiftto different voltages through this degradation. In some embodiments, theset of memory cells 440-2 can represent a first degradation and the setof memory cells 440-3 can represent a second degradation of the set ofmemory cells 440-1. The set of memory cells 440-2 and the set of memorycells 440-3 can include the same or similar set of memory cells. Forexample, the set of memory cells 440-2 can include an additionalplurality of memory cells 441-2 in a negative direction and anadditional plurality of memory cells 442-2 in a positive direction.Similarly, the set of memory cells 440-3 can include an additionalplurality of memory cells 441-3 in a negative direction and anadditional plurality of memory cells 442-3 in a positive direction.

As illustrated by the set of memory cells 440-2, the first thresholdvoltage 443 has shifted from cell 0 to cell +2. This can occur over aperiod of time or use as described herein. In some embodiments, thefirst threshold voltage 443 can be used to perform a read operation onthe set of memory cells 440-2. As described herein, the read operationcan be utilized to determine a quantity of bits 446 for the set ofmemory cells 440-2. In some embodiments, the quantity of bits 446 can beless than the quantity of bits 444. In some embodiments, the quantity ofbits 446 can be less than the determined lower threshold of bits asdescribed herein. In these embodiments, the quantity of bits 446 caninclude bit +2, the plurality of bits 442-2, and bits through bit +N+N.

As described herein, the quantity of bits 446 will be less than thequantity of bits 444 from the set of memory cells 440-1. In this way, avoltage threshold prediction-based memory management component (e.g.,voltage threshold prediction-based memory management component 113 asillustrated in FIG. 1 , etc.) can determine that the first thresholdvoltage 443 has moved in the positive direction and that the thresholdvoltage is to be lower than the first threshold voltage 443. Forexample, the first threshold voltage 443 can be lowered to a secondthreshold voltage 445. In this example, the lower second thresholdvoltage 445 can target the cell 0 and result in decoding the set ofmemory cells 440-2.

As illustrated by the set of memory cells 440-3, the first thresholdvoltage 443 has shifted from cell 0 to cell −2. This can occur over aperiod of time or use as described herein. In some embodiments, thefirst threshold voltage 443 can be used to perform a read operation onthe set of memory cells 440-3. As described herein, the read operationcan be utilized to determine a quantity of bits 448 for the set ofmemory cells 440-3. In some embodiments, the quantity of bits 448 can begreater than the quantity of bits 444. In some embodiments, the quantityof bits 448 can be greater than the determined upper threshold of bitsas described herein. In these embodiments, the quantity of bits 448 caninclude bit −2, the plurality of bits 442-3, and bits through bit +N+N.

As described herein, the quantity of bits 448 will be greater than thequantity of bits 444 from the set of memory cells 440-1. In this way, avoltage threshold prediction-based memory management component (e.g.,voltage threshold prediction-based memory management component 113 asillustrated in FIG. 1 , etc.) can determine that the first thresholdvoltage 443 has moved in the negative direction and that the thresholdvoltage is to be greater than the first threshold voltage 443. Forexample, the first threshold voltage 443 can be increased to a thirdthreshold voltage 447. In this example, the greater third thresholdvoltage 447 can target the cell 0 and result in decoding the set ofmemory cells 440-3.

FIG. 5 is a block diagram of an example computer system 500 in whichembodiments of the present disclosure may operate. For example, FIG. 5illustrates an example machine of a computer system 500 within which aset of instructions, for causing the machine to perform any one or moreof the methodologies discussed herein, can be executed. In someembodiments, the computer system 500 can correspond to a host system(e.g., the host system 120 of FIG. 1 ) that includes, is coupled to, orutilizes a memory sub-system (e.g., the memory sub-system 110 of FIG. 1) or can be used to perform the operations of a controller (e.g., toexecute an operating system to perform operations corresponding to thevoltage threshold prediction-based memory management component 113 ofFIG. 1 ). In alternative embodiments, the machine can be connected(e.g., networked) to other machines in a LAN, an intranet, an extranet,and/or the Internet. The machine can operate in the capacity of a serveror a client machine in client-server network environment, as a peermachine in a peer-to-peer (or distributed) network environment, or as aserver or a client machine in a cloud computing infrastructure orenvironment.

The machine can be a personal computer (PC), a tablet PC, a set-top box(STB), a Personal Digital Assistant (PDA), a cellular telephone, a webappliance, a server, a network router, a switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. Further,while a single machine is illustrated, the term “machine” shall also betaken to include any collection of machines that individually or jointlyexecute a set (or multiple sets) of instructions to perform any one ormore of the methodologies discussed herein.

The example computer system 500 includes a processing device 502, a mainmemory 504 (e.g., read-only memory (ROM), flash memory, dynamic randomaccess memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM(RDRAM), etc.), a static memory 506 (e.g., flash memory, static randomaccess memory (SRAM), etc.), and a data storage system 518, whichcommunicate with each other via a bus 530.

The processing device 502 represents one or more general-purposeprocessing devices such as a microprocessor, a central processing unit,or the like. More particularly, the processing device can be a complexinstruction set computing (CISC) microprocessor, reduced instruction setcomputing (RISC) microprocessor, very long instruction word (VLIW)microprocessor, or a processor implementing other instruction sets, orprocessors implementing a combination of instruction sets. Theprocessing device 502 can also be one or more special-purpose processingdevices such as an application specific integrated circuit (ASIC), afield programmable gate array (FPGA), a digital signal processor (DSP),network processor, or the like. The processing device 502 is configuredto execute instructions 526 for performing the operations and stepsdiscussed herein. The computer system 500 can further include a networkinterface device 508 to communicate over the network 520.

The data storage system 518 can include a machine-readable storagemedium 524 (also known as a computer-readable medium) on which is storedone or more sets of instructions 526 or software embodying any one ormore of the methodologies or functions described herein. Theinstructions 526 can also reside, completely or at least partially,within the main memory 504 and/or within the processing device 502during execution thereof by the computer system 500, the main memory 504and the processing device 502 also constituting machine-readable storagemedia. The machine-readable storage medium 524, data storage system 518,and/or main memory 504 can correspond to the memory sub-system 110 ofFIG. 1 .

In one embodiment, the instructions 526 include instructions toimplement functionality corresponding to a voltage thresholdprediction-based memory management component (e.g., the voltagethreshold prediction-based memory management component 113 of FIG. 1 ).While the machine-readable storage medium 524 is shown in an exampleembodiment to be a single medium, the term “machine-readable storagemedium” should be taken to include a single medium or multiple mediathat store the one or more sets of instructions. The term“machine-readable storage medium” shall also be taken to include anymedium that is capable of storing or encoding a set of instructions forexecution by the machine and that cause the machine to perform any oneor more of the methodologies of the present disclosure. The term“machine-readable storage medium” shall accordingly be taken to include,but not be limited to, solid-state memories, optical media, and magneticmedia.

Some portions of the preceding detailed descriptions have been presentedin terms of algorithms and symbolic representations of operations ondata bits within a computer memory. These algorithmic descriptions andrepresentations are the ways used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, combined, compared, and otherwise manipulated. It hasproven convenient at times, principally for reasons of common usage, torefer to these signals as bits, values, elements, symbols, characters,terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. The presentdisclosure can refer to the action and processes of a computer system,or similar electronic computing device, that manipulates and transformsdata represented as physical (electronic) quantities within the computersystem's registers and memories into other data similarly represented asphysical quantities within the computer system memories or registers orother such information storage systems.

The present disclosure also relates to an apparatus for performing theoperations herein. This apparatus can be specially constructed for theintended purposes, or it can include a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program can be stored in a computerreadable storage medium, such as, but not limited to, any type of diskincluding floppy disks, optical disks, CD-ROMs, and magnetic-opticaldisks, read-only memories (ROMs), random access memories (RAMs), EPROMs,EEPROMs, magnetic or optical cards, or any type of media suitable forstoring electronic instructions, each coupled to a computer system bus.

The algorithms and displays presented herein are not inherently relatedto any particular computer or other apparatus. Various general purposesystems can be used with programs in accordance with the teachingsherein, or it can prove convenient to construct a more specializedapparatus to perform the method. The structure for a variety of thesesystems will appear as set forth in the description below. In addition,the present disclosure is not described with reference to any particularprogramming language. It will be appreciated that a variety ofprogramming languages can be used to implement the teachings of thedisclosure as described herein.

The present disclosure can be provided as a computer program product, orsoftware, that can include a machine-readable medium having storedthereon instructions, which can be used to program a computer system (orother electronic devices) to perform a process according to the presentdisclosure. A machine-readable medium includes any mechanism for storinginformation in a form readable by a machine (e.g., a computer). In someembodiments, a machine-readable (e.g., computer-readable) mediumincludes a machine (e.g., a computer) readable storage medium such as aread only memory (“ROM”), random access memory (“RAM”), magnetic diskstorage media, optical storage media, flash memory devices, etc.

In the foregoing specification, embodiments of the disclosure have beendescribed with reference to specific example embodiments thereof. Itwill be evident that various modifications can be made thereto withoutdeparting from the broader spirit and scope of embodiments of thedisclosure as set forth in the following claims. The specification anddrawings are, accordingly, to be regarded in an illustrative senserather than a restrictive sense.

What is claimed is:
 1. A method, comprising: predicting a shift in avoltage threshold associated with a set of memory cells responsive toperformance of a first memory operation; performing a second memoryoperation involving the set of memory cells using a first voltage inresponse to determining that the quantity of bits exceeds a firstthreshold quantity of bits based on the predicted shift in the voltageassociated with the set of memory cells; or performing the second memoryoperation involving the set of memory cells using a second voltage inresponse to determining that the quantity of bits is below the thresholdquantity of bits for the set of memory cells based on the predictedshift in the voltage associated with the set of memory cells.
 2. Themethod of claim 1, further comprising performing the first memoryoperation using a voltage that is different than the first voltage andthe second voltage.
 3. The method of claim 1, further comprisingrefraining from using the first voltage in response to determining thatthe quantity of bits is below the threshold quantity of bits for the setof memory cells.
 4. The method of claim 1, further comprising refrainingfrom using the second voltage in response to determining that thequantity of bits is above the threshold quantity of bits for the set ofmemory cells.
 5. The method of claim 1, wherein the set of memory cellscomprise a word line of a NAND memory device.
 6. The method of claim 1,comprising determining the threshold quantity of bits for the set ofmemory cells based on a particular memory cell or sub-set of memorycells that is in a particular physical location within the set of memorycells.
 7. An apparatus, comprising: a processing device configured to:perform, using a first voltage, a first memory operation that targets atleast one memory cell within a set of memory cells to: determine a firstthreshold quantity of bits for the set of memory cells, and determine asecond threshold quantity of bits for the set of memory cells; predict ashift in a voltage threshold associated with the set of memory cellsbased on performance of the first memory operation using the firstthreshold voltage that targets at least the one memory cell within theset of memory cells; determine a second threshold voltage to be utilizedfor a second memory operation based on a comparison between thedetermined first threshold quantity of bits and the second thresholdquantity of bits and the predicted shift in the voltage associated withthe set of memory cells.
 8. The apparatus of claim 7, wherein theprocessing device is further configured to perform a second memoryoperation using the second threshold voltage.
 9. The apparatus of claim7, wherein the second threshold voltage is greater than the firstthreshold voltage when the determined quantity of bits is greater thanthe first threshold quantity of bits.
 10. The apparatus of claim 7,wherein the second threshold voltage is less than the first thresholdvoltage when the determined quantity of bits is less than the secondthreshold quantity of bits.
 11. The apparatus of claim 7, wherein theprocessing device is configured to determine a plurality of subsequentthreshold voltages to be greater than the first threshold voltage whenthe determined quantity of bits is greater than the first thresholdquantity of bits.
 12. The apparatus of claim 7, wherein the processingdevice is configured to determine a plurality of subsequent thresholdvoltages to be less than the first threshold voltage when the determinedquantity of bits is less than the second threshold quantity of bits. 13.The apparatus of claim 7, wherein the processing device is configuredto: perform only positive read offsets when the determined quantity ofbits is greater than the first threshold quantity of bits, and performonly negative read offsets when the determined quantity of bits is lessthan the second threshold quantity of bits.
 14. A non-transitorycomputer-readable medium storing instruction that, when executed by aprocessing device, cause the processing device to: perform a firstmemory operation involving a set of memory cells using a first thresholdvoltage to target a particular memory cell of the set of memory cells;determine a quantity of bits of the set of memory cells based on thefirst memory operation using the first threshold voltage; predict ashift in a voltage threshold associated with the set of memory cellsbased on performance of the first memory operation involving the set ofmemory cells using the first threshold voltage; and perform memoryoperations involving the set of memory cells using a set of thresholdvoltages based on the predicted shift in the voltage thresholdassociated with the set of memory cells based on performance of thefirst memory operation involving the set of memory cells using the firstthreshold voltage.
 15. The medium of claim 14, wherein the processingdevice is configured to execute the instructions to: refrain from usingnegative offsets when the determined quantity of bits is greater thanthe upper bit count threshold, or refrain from using positive offsetswhen the determined quantity of bits is less than the lower bit countthreshold.
 16. The medium of claim 14, wherein the processing device isconfigured to execute the instructions to determine an upper bit countthreshold and a lower bit count threshold for the set of memory cellsbased on the first threshold voltage.
 17. The medium of claim 14,wherein the set of threshold voltages comprises: a set of positiveoffsets when the determined quantity of bits is greater than the upperbit count threshold; a set of negative offsets when the determinedquantity of bits is less than the lower bit count threshold, or acombination of positive and negative offsets when the determinedquantity of bits is between the upper bit count threshold and the lowerbit count threshold.
 18. The medium of claim 16, wherein the processingdevice is configured to execute the instructions to alter the upper bitcount threshold and the lower bit count threshold based on a designatedread level as part of performing the memory operations.
 19. The mediumof claim 18, wherein the processing device is configured to execute theinstructions to alter the upper bit count threshold and the lower bitcount threshold by increasing the upper bit count threshold and thelower bit count threshold when the first threshold voltage is lowered toa second threshold voltage, or decreasing the upper bit count thresholdand the lower bit count threshold when the first threshold voltage isincreased to a third threshold voltage.
 20. The medium of claim 14,wherein the processing device is configured to execute the instructionsto perform a read operation as part of performance of the first memoryoperation.